<?php
class Admin_IndexController extends Arm_Controller_Action
{
  
    /**
     * Главная админ часть системы.
     */
    public function indexAction()
    {
       $this->setDataPageView('/admin');
    }
    
    /**
     * Управления главным конфиго проекта
     * @todo в дальнейшем проработаем в виде формы v 1.1
     */
    public function configAction()
    {
      $path = Arm_Core::getPathApplication() .  'configs/application.ini';
      $form = new Admin_Form_Config();
      $this->view->form = $form;
      if($this->getRequest()->isPost() === false) { 
          $form->config->setValue(file_get_contents($path));
      }
      if($this->getRequest()->isPost() and $form->isValid($this->getPost())) {
          // запишем
          $data = $form->getValues();
          $fp = fopen($path, 'wb');
          fwrite($fp, $data['config']);
          fclose($fp);
          $this->addFlashMessender(Arm_Translate::_('Конфиг проекта записан'));
          $this->_redirect($this->getRequest()->getRequestUri());
      }
    }
    
    /**
     * Запись дампа базы данных проекта
     * 
     */
    public function createinstallprojectAction()
    {
     if($this->_getParam('c') !== null) {
           $dump = new Arm_Db_Dump();
           $path = $dump->export();
           if($path !== false) {
               $this->addFlashMessender(Arm_Translate::_('Дамп проекта записан "%s"', 
                   $path
                  )
               );
           }
       }
    }

    /**
     * Создания архивов установки всех модулей в системе.
     */
    public function writemodulesinstallAction()
    {
        if($this->_getParam('c') !== null) {
           Arm_Module::getInstance()->createModuleIstall(null);
           $modules = Arm_Module::getInstance()->getModulesDb();
           foreach ($modules as $k=>$v) {
               $install = new Arm_Module_Install($v['name']);
               $install->createArchivInstall();
           }
           $this->addFlashMessender(Arm_Translate::_('Вcе архивы созданны'));
        }
    }
}